Computers are used in a wide variety of applications in modern society. In the vernacular, the term “computer” has become synonymous with digital computers. A digital computer performs mathematical operations on discrete data, typically binary data, and generates a discrete output. The binary data are formed from a plurality of “bits” that can take one of two values, often represented as on/off or “1” and “0” values. Digital computers process the binary data algorithmically using software to enable a single digital computing device to perform a wide range of computations based on different algorithms. Digital computers can be used to generate analog outputs, such as visual graphics, sound, and other electromagnetic signals, using various forms of digital to analog converters.
While digital computers are well-known, a computer does not have to be a digital computer. In a broader definition, the term “computer” refers to any physical object that can be reconfigured to solve multiple problems. That is to say, a computer can generate an “answer” to many different “questions”. Digital computers generate answers to questions using one or more algorithms, which are a series of individual computations that eventually generate an answer to a question. Analog computers are another type of computer that are physically configured to generate an “answer” based on a particular input without using the step-by-step algorithms of a digital computer. In one known example of an analog computer, an operational amplifier (OpAmp) is configured in an electrical circuit to generate an output voltage using two input voltages. The output voltage represents the “answer” to a simple computation such as adding, subtracting, or multiplying the two input voltages. While a digital computer operates on discrete values of data, the analog OpAmp can theoretically accept an infinite number of different voltage levels that are within a practical operating range of the OpAmp circuit. In the example analog computer, the configuration of components and the laws of physics, in this case the laws governing how electrical currents flow through a physical OpAmp device, determine the answer to the question. Reconfiguration of the analog computer can generate answers to different questions.
Both digital and analog computers have advantages and disadvantages. A classical digital computer reconfigures itself quickly to answer new questions by loading software and performing the algorithms in the software. Certain types of questions, however, are difficult for digital computers to solve in reasonable amounts of time. For example, physical simulations that are modeled with complex mathematical equations including partial differential equations and ordinary differential equations. Complex simulations can often include random elements, modeled as stochastic processes, based on randomness observed in nature. While digital computers can perform simulations algorithmically, the performance of digital computers, even supercomputers that include large numbers of individual digital computers working together, is often ineffective at simulating certain phenomena. In some cases, an analog computer can perform the equivalent computations of a complex physical simulation much more efficiently than a digital computer. The analog computer can include inherently random elements that model stochastic processes more easily that with pseudo-random algorithms commonly employed in digital computers. The analog computer, however, may have to be unreasonably complex to perform a complex simulation. Additionally, a traditional analog computer cannot be reconfigured easily to answer multiple types of question or variations in the question. For example, configuring a traditional analog computer to perform a simulation can include wiring a large number of electrical components together into a predetermined configuration to solve a particular problem.
An extended analog computer (EAC) combines the advantages of both analog and digital computers. Existing EACs include an electrically conductive material, such as gelatin or anti-static conductive foam commonly used to pack electronic equipment, and two or more electrically conductors or “pins” engaged to the electrically conductive material. Each pin can act as either an input (source) or an output (sink) for an electrical current. The electrical current flows from an input pin to an output pin through the electrically conductive material. In a typical embodiment, numerous pins are placed in the electrical conductor and an outside controller, which can be a digital computer, selectively applies electrical signals to some of the pins as sources and then monitors the corresponding electrical current that flows to one or more sink pins. The spatial orientation of the pins and selected electrical signals applied to the source pins generates a stationary current density manifold through the electrically conductive material. The selective activation of source pins and monitoring of sink pins enables a modeling of wide range of mathematical relationships, including differential equations and piece-wise linear functions. Unlike traditional analog computers, the EAC reconfigures rapidly by selection of different arrangements of source and sink pins using electromechanical or solid-state switches.
While EACs can perform various tasks quickly, existing EAC designs have limitations in the realm of signal processing, and more generally in the realm of processing time varying input signals. For example, adaptive signal filtering is a common task in signal processing where a filter changes dynamically to remove noise from an electromagnetic signal. Typically, the electromagnetic signal and the noise are time varying, which is to say that the values of the input signals change over time. In a traditional EAC, the time-varying input signals generate fluctuations in the electrical current flowing between sources and drains within the conductive material of the EAC. Consequently, the current density manifold within the EAC changes while the EAC is generating the solution, resulting in an unstable output. Thus, traditional EACs are often ineffective in processing time varying input signals, including adaptive filtering applications. Consequently, improvements to EACs that enable processing of time varying inputs would be beneficial.